import { user_attribute } from '@src/db/src/models/user/user_attribute'

/**
 * 写入用户属性表中的指定字段
 * @param uid 用户uid
 * @param fieldName 要修改的字段名
 * @param newValue 修改后的数值
 * @returns Promise<boolean> 修改成功返回true，失败抛异常
 */
export async function writeUserAttribute(
  uid: number,
  fieldName: string,
  newValue: number | string
): Promise<boolean> {
  // 检查该字段是否存在
  const attr = await user_attribute.findOne({ where: { uid } })
  if (!attr) throw new Error('用户不存在')

  if (!(fieldName in attr)) throw new Error('字段不存在')

  // 执行更新
  await user_attribute.update({ [fieldName]: newValue }, { where: { uid } })
  return true
}
